const request = require('../../utils/request.js');
// pages/mine_module/mine/mine.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    message: '', // 存储当前页面接收到的消息
    isModalVisible: false,  // 控制弹窗显示
    name: '',               // 用户输入的昵称
    signature: '',          // 用户输入的签名
    info: {},
    userInfo: {
      url: '/assets/avatar.png', // 用户头像占位符
      name: '昵称',
      signature: '个性签名',
      title: '称号'
    },
    balance: '300.48', // 示例的余额值
    icons: [
      { name: '需求', icon: '/assets/list.png', red: false },
      { name: '任务', icon: '/assets/_user_02.png' },
    ]
  },
  onShow() {
    // 定时检查全局变量 hasNewMessage 的状态
    this.checkNewMessageInterval = setInterval(() => {
      const app = getApp();
      if (app.globalData.hasNewMessage) {
        // 设置页面数据
        //console.log('really?')
        this.setData({
          [`icons[0].red`]: true // 显示特定内容
        });

        // 重置全局变量 hasNewMessage 为 false
        app.globalData.hasNewMessage = false;
      }
    }, 1000); // 每秒检查一次
  },

  onHide() {
    // 清除定时器，避免内存泄漏
    clearInterval(this.checkNewMessageInterval);
  },
  showEditModal() {
    this.setData({
      isModalVisible: true
    });
  },
  showFeatureNotAvailable() {
    wx.showModal({
      title: '提示',
      content: '该功能暂未开通，敬请期待！',
      showCancel: false, // 不显示取消按钮
      confirmText: '知道了'
    });
  },
  // 取消弹窗
  cancelModal() {
    this.setData({
      isModalVisible: false
    });
  },

  // 输入昵称时更新 data
  onNameInput(e) {
    this.setData({
      name: e.detail.value
    });
  },

  // 输入签名时更新 data
  onSignatureInput(e) {
    this.setData({
      signature: e.detail.value
    });
  },

  // 提交修改
  submitEdit() {
    const { name, signature } = this.data;

    if (!name || !signature) {
      wx.showToast({
        title: '请填写昵称和签名',
        icon: 'none'
      });
      return;
    }
    request.request('/user/change', 'POST', {
      name: name,
      pass: 'yyj',                        // 固定值
      phone: '19310059809',               // 固定值
      signature: signature,
      trueName: '凡雨郑',                  // 固定值
      identificationNumber: '312',        // 固定值
      emergencyName: '杰杰',               // 固定值
      emergencyContacts: '12345678910'    // 固定值
    })
      .then((res) => {
        if (res.code === '200') {
          wx.showToast({
            title: '修改成功',
            icon: 'success'
          });
          this.setData({
            isModalVisible: false
          });
          this.getUserInformation();
        } else {
          this.setData({
            isModalVisible: false
          });
          wx.showToast({
            title: '修改失败，请重试',
            icon: 'none'
          });
        }
      })
      .catch((err) => {
        wx.showToast({
          title: '修改失败，请重试',
          icon: 'none'
        });
        this.setData({
          isModalVisible: false
        });
      });
  },
  // 点击头像触发选择图片
  chooseAvatar() {
    const that = this;
    wx.chooseImage({
      count: 1, // 只允许选择一张图片
      sizeType: ['original', 'compressed'], // 可以选择原图或压缩图
      sourceType: ['album', 'camera'], // 可以从相册或相机中选择
      success(res) {
        const tempFilePath = res.tempFilePaths[0]; // 获取图片路径

        // 上传图片
        that.uploadAvatar(tempFilePath);
      }
    });
  },

  // 上传头像图片
  uploadAvatar(filePath) {
    const that = this;

    // 假设后端有一个接口用于上传图片文件
    wx.uploadFile({
      url: 'http://106.52.12.104:8089/resort/change/picture', // 图片上传的接口
      filePath: filePath,
      name: 'file', // 后端接收的字段名
      formData: {
        type: 'head', // 上传类型，head表示头像，help表示求助附件图片
      },
      header: {
        token: wx.getStorageSync('token') // 将token从本地存储中取出，加入header
      },
      success(uploadRes) {
        const data = JSON.parse(uploadRes.data);
        console.log(data)
        if (data.code === '200') {
          console.log('im here')
          // 上传成功后，使用图片路径更新头像
          const imageUrl = '/' + data.data; // 假设后端返回上传图片的路径

          // 调用修改头像的接口
          that.changeAvatar(imageUrl);
        } else {
          wx.showToast({
            title: '上传失败，请重试',
            icon: 'none'
          });
        }
      },
      fail() {
        wx.showToast({
          title: '上传失败',
          icon: 'none'
        });
      }
    });
  },

  // 调用修改头像的接口
  changeAvatar(imageUrl) {
    request.request('/user/change/header', 'POST', {
      header: imageUrl
    })
      .then((res) => {
        if (res.code === '200') {
          this.getUserInformation();
        } else {
          console.error('修改头像失败：', res.message);
        }
      })
      .catch((err) => {
        console.error('请求失败：', err);
      });
  },
  getUserInformation() {
    request.request('/user/get/information', 'GET')
      .then((res) => {
        if (res.code === '200') {
          const userData = res.data;

          // 存储数据到本地
          try {
            wx.setStorageSync('userInfo', userData);
            console.log('用户信息已存储到本地');

            // 更新页面数据
            this.setData({
              info: userData,
              userInfo: {
                url: 'http://106.52.12.104:8080/image' + userData.header, // 用户头像占位符
                name: userData.name,
                signature: userData.signature,
              },
              name: userData.name,
              signature: userData.signature,
            });
          } catch (e) {
            console.error('存储用户信息到本地失败', e);
          }
        } else {
          console.error('获取用户信息失败：', res.message);
        }
      })
      .catch((err) => {
        console.error('请求失败：', err);
      });
  },
  onIconTap: function (e) {
    const index = e.currentTarget.dataset.index; // 获取点击的图标索引
    //console.log('点击的图标索引:', index);
    const app = getApp();
    app.globalData.hasNewMessage = false;
    // 跳转到目标页面并携带 index 参数
    if (index === 0 || index === 1) {
      wx.navigateTo({
        url: `/subpackages/mine-module/pages/my_order/my_order?index=${index}`, // 假设跳转到某个页面，index 作为参数
      });
    } else {
      wx.switchTab({
        url: '/pages/onlineAid/onlineAid',
      })
    }

  },
  onSettingsTap() {
    wx.navigateTo({
      url: '/pages/settings/settings'
    });
  },
  onTestNavigate() {
    console.log("点击！")
    wx.navigateTo({
      url: '/pages/assist/assist'
    });
  },
  onAccountInfoTap() {

  },

  onContactSupportTap() {

  },
  onSettingNavigate() {
    wx.navigateTo({
      url: '/pages/mine/setting'
    });
  },
  onFeedbackTap() {

  },
  onNavigateMoney() {
    wx.navigateTo({
      url: './money',
    })
  },
  gotoCustomerService() {
    wx.navigateTo({
      url: '/subpackages/mine-module/pages/customer-service/customer-service',
    })
  },
  onVersionUpdateTap() {

  },
  /**
   * 生命周期函数--监听页面加载
   */
  onShow() {
    //console.log("Try to load data from show method")
    const userInfo = wx.getStorageSync('userInfo');
    if (userInfo) {
      this.setData({
        info: userInfo,
        userInfo: {
          url: 'http://106.52.12.104:8080/image' + userInfo.header, // 用户头像占位符
          name: userInfo.name,
          signature: userInfo.signature,
        },
        name: userInfo.name,
        signature: userInfo.signature,
      })
    }
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },


  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  },
  gotoMyOrder() {
    wx.navigateTo({
      url: '/subpackages/mine-module/pages/my_order/my_order',
    })
  },
  gotoAccountInfo() {
    wx.navigateTo({
      url: '/subpackages/mine-module/pages/account-info/account-info',
    })
  },
  gotoVersionCheck() {
    wx.navigateTo({
      url: '/subpackages/mine-module/pages/version-check/version-check',
    })
  },
  gotoFeedback() {
    wx.navigateTo({
      url: '/subpackages/mine-module/pages/feedback/feedback',
    })
  }
})